N. 13 del 1/9/1998

Virus, il giorno dell'indipendenza
di Antonio Cianci


Impariamo a conoscere e a difenderci dalle infezioni del computer

Nel film Independence Day gli alieni conquistano la Terra servendosi di enormi astronavi. La resistenza umana, organizzata attorno ad un gruppo di superstiti è senza risorse contro la potenza degli invasori. Ma ad un certo punto arriva la soluzione: iniettare un virus nel computer dell'astronave madre. Gli eroi raccolgono le armi e, dopo una epica battaglia, riescono a connettersi con il cervello elettronico della nave ammiraglia e ad inserire il virus all'interno del quartier generale delle forze armate extraterrestri. Gli effetti sono disastrosi: l'astronave impazzisce e manda in tilt tutte le altre navi. Gli eroi possono tornare a casa. Presenti nei film e nei racconti di fantascienza come armi terribili e spietate, con la diffusione dell'informatica in ogni aspetto della società moderna i virus sono entrati nella vita di tutti i giorni. Purtroppo su questo fenomeno, forse anche per colpa della leggerezza con cui l'argomento viene trattato dal cinema e dalla stampa, soprattutto quella non specializzata, ci sono molte idee confuse. Il termine virus spaventa infatti sia coloro che si sono avvicinati da poco al mondo dell'informatica sia gli utenti più esperti. Ma che cos'è un virus informatico, come agisce, quali sono le sue caratteristiche? Cerchiamo di spiegarlo in questo articolo. Dai prossimi numeri avrà inizio una rubrica che permetterà a tutti di seguirne i diversi aspetti approfondendo soprattutto le moderne tecniche di difesa.

Che cosa sono i virus informatici

Un virus è un programma che, contrariamente al software "normale", contiene una parte di codice che gli consente di replicarsi: in altre parole, può autonomamente realizzare copie di se stesso. Una volta effettuata la replica del suo codice, un virus usa diversi mezzi (settori di avvio dei dischi fissi e dei floppy disk, file eseguibili e le macro dei documenti realizzati con elaboratori testi e fogli elettronici) per diffondere la sua infezione. Un virus attacca il suo codice "infetto" al codice "sano" di un file. A questo punto, quando si copia il file su un dischetto o lo si invia come allegato di un messaggio di posta elettronica, l'infezione inizia a propagarsi. In realtà parlare semplicemente di virus è improprio: ne esistono molti tipi, con comportamenti e "funzionalità" differenti.

Virus dei settori di avvio e di partizione

Quando si accende il computer, durante la procedura di avvio del sistema operativo, il pc legge automaticamente alcune parti del disco (il settore delle partizioni, chiamato anche mbr - Master Boot Record - e il settore di avvio) che contengono il codice necessario per caricare i file di sistema. La procedura di avvio è identica sia che il boot avvenga da un dischetto sia da un disco rigido, con l'unica differenza che nel dischetto, che può avere una sola partizione, non è presente il Master Boot Record. Nella prima parte della figura in basso viene mostrato come vengono eseguiti i programmi memorizzati nella tavola delle partizioni e nei settori di boot dei dischi all'accensione del sistema in un computer non infetto. La seconda parte mostra come un virus possa agire inserendo il suo codice nella procedura di boot. Per prima cosa sposta la tavola delle partizioni in un settore qualsiasi del disco, dopo di che copia se stesso nello spazio lasciato libero. In questo modo, il programma di avvio esegue automaticamente il codice del virus a ogni boot del sistema permettendogli di attivarsi. Una volta in azione, il virus si collega al settore del disco dove ha spostato la tavola delle partizioni e il processo di avvio prosegue normalmente. La maggioranza dei virus di questo tipo sceglie arbitrariamente i cluster dove spostare la tavola delle partizioni e i settori di boot originali, marcandoli come non utilizzabili, o bad, nella fat (File Allocation Table), in modo che non possano essere sovrascritti. Il metodo più comune per prendere un virus di questo tipo consiste nell'avviare il computer da un dischetto infetto. Molti computer, al momento di accensione, cercano il sistema operativo prima nel drive a e poi nel disco c. Si tratta di un'impostazione, generalmente modificabile dal bios del sistema, per permettere di caricare il sistema operativo dal dischetto. Bisogna ricordare però che il settore di avvio è presente su tutti i dischi floppy, anche quelli che contengono solo dati. Su questi ultimi, infatti, sono presenti le istruzioni che permettono di visualizzare il messaggio che avverte che il sistema non può essere caricato da quel disco. Se il settore di avvio di un dischetto è infetto, al momento del boot della macchina viene eseguito il virus che così può infettare il disco fisso. Quando compare il messaggio "Disco non di sistema …" se il dischetto contiene un virus del settore di boot, il virus è già entrato in azione infettando il computer. Questo tipo di agenti virali può infettare qualsiasi computer a prescindere dal sistema operativo, in quanto il virus, scritto in linguaggio macchina, entra in azione prima che venga caricato il sistema operativo. I computer Macintosh hanno risolto questo problema grazie a una procedura automatica di espulsione dei dischetti al momento dell'avvio, riducendo notevolmente il rischio di infezione. Senza ricorrere a queste soluzioni sofisticate, la difesa contro questo tipo di virus è abbastanza semplice: basta non lasciare mai un dischetto nel drive a e se, nonostante tutto, ne viene dimenticato uno al momento dell'avvio bisogna spegnere il computer dall'interruttore principale, riavviandolo dopo aver tolto il dischetto dal drive a. Inoltre, molte macchine permettono di impostare il bios del sistema in modo da far partire la procedura di avvio dal drive c anche se è presente un dischetto nel drive a, rendendo impossibile il boot da dischetto. Sfortunatamente le cose più semplici molte volte sono le più difficili da applicare nella pratica corrente e così i virus di boot sono molto frequenti. Windows 95, fortunatamente, presenta alcuni accorgimenti che possono rendere la vita più difficile a questo tipo di virus. Infatti il sistema operativo a ogni avvio controlla i settori di avvio e delle partizioni del sistema di cui fa una copia nel file suhdlog.dat e se rileva cambiamenti nella sua struttura emette messaggi di avviso che ne notificano il cambiamento.

I virus di file

Questo tipo di infezione colpisce direttamente i file dei programmi, cioè quelli con estensione .exe o .com e, in generale, tutti quelli contenenti istruzioni eseguibili dal microprocessore. A sinistra è illustrato il modo di lavorare di questo tipo di infezioni. Nella parte alta si può vedere la tipica struttura di un programma non infetto. In un programma infetto, prima del codice vero del programma viene eseguito il codice del virus. In questo modo il virus può entrare in azione. Compreso il procedimento con cui venivano scritti questi tipo di virus, per i progettisti di programmi antivirus è stato abbastanza semplice correre ai ripari, realizzando i motori di scansione o scanner con i quali viene rilevata l'infezione. La prima cosa che fa uno scanner è controllare se all'interno del file esiste la sequenza di istruzioni (stringa) caratteristica di ciascuna infezione. La ricerca dei virus avviene attraverso il confronto con un insieme di stringhe di identificazione, ricavate nei laboratori di ricerca specializzati analizzando la struttura dei virus di cui sono entrate in possesso. È questo il motivo per cui se si incontra un virus sconosciuto i produttori di software - e di antivirus in particolare - richiedono di inviarle il file infetto. In questo modo si possono analizzare le caratteristiche e preparare l'aggiornamento delle stringhe di riconoscimento dell'antivirus. Quando si installa l'aggiornamento di un prodotto non si fa altro che caricare un nuovo insieme di stringhe di riconoscimento con cui il programma di scansione può individuare i nuovi virus. Come tutti i programmi dos dal 1981 in poi, anche i programmi infetti da un virus di file possono essere eseguiti senza alcun problema in Windows 95.

Virus di macro

Le moderne suite di programmi di produttività individuale (Corel Office, Microsoft Office, Lotus Smartsuite) possiedono comodi linguaggi di macro-programmazione con i quali è possibile automatizzare procedure noiose e ripetitive. Questo ha portato notevoli vantaggi agli utilizzatori, ma ha introdotto una nuova minaccia, prima ritenuta impossibile, costituita da veri e propri virus informatici che si propagano attraverso i documenti. Queste infezioni sono state studiate a livello teorico già dal 1989 ma hanno iniziato a diffondersi molti più tardi. Bisogna aspettare infatti il dicembre del 1994 per il primo virus delle macro di Microsoft Word di cui si sia a conoscenza, word.dmv, anche se il primo a raggiungere una notevole diffusione, word.concept, comparve solo nel giugno 1995, ottenendo rapida propagazione per mezzo di alcuni cd prodotti dalla Microsoft che contenevano documenti infetti da questo virus. L'impatto fu notevole: all'epoca numerosi utenti scambiavano correntemente documenti tramite dischetti o posta elettronica senza nessuna precauzione. Nel giro di pochi mesi word.concept divenne il virus più diffuso nel mondo, superando form e antiexe, da anni in vetta alle classifiche dei virus più diffusi.

Tecnicamente un virus di macro è costituito da una macro o da un file di modello (template) che ha la possibilità di replicare il suo codice ed, eventualmente, arrecare danni al sistema. Un'infezione avviene quando una macro infetta ordina al sistema di sovrascrivere o di alterare comandi di sistema esistenti, aggiungendo o alterando quelli contenuti nell'elenco globale delle macro. Quando Word apre un documento, la prima cosa che fa è vedere se contiene delle macro, eseguendole. Nel caso di documenti infetti, queste macro ne infettano altre, replicandosi. Nei casi più comuni viene sostituita la macro filesaveas, in modo da controllare come vengono salvati i documenti futuri. Questo significa che il virus può stabilire il formato con cui verranno salvati i documenti e quali macro includere nel documento. Alla fine della sessione, Word salva automaticamente tutte le macro globali nel file normal.dot, rendendole disponibili per tutte le sessioni future, fino a che non si sostituisce il file normal.dot infetto con quello originale. Poiché sono legati all'applicazione e non al sistema operativo, sono multipiattaforma, in quanto possono infettare tutti i sistemi su cui può girare l'applicazione. Sono legate inoltre alla versione nazionale dell'applicazione: i linguaggi macro vengono tradotti nella lingua del paese in cui viene commercializzata l'applicazione, rendendo impossibile la diffusione dell'infezione oltre i confini nazionali. Questi virus vengono identificati dai programmi antivirus utilizzando le stringhe di riconoscimento e vengono eliminati cancellando dal documento le macro infette. L'ultima versione di Word, contenuta in Office97, avvisa ogni volta che viene caricata una macro sospetta, lasciando all'utente la scelta di aprirla o meno.

Azioni e caratteristiche dei virus

Indipendentemente dalla loro natura (infezioni dei file, dei settori di avvio o di macro) i virus esercitano azioni diverse e mostrano comportamenti particolari che possono essere riassunti in quattro categorie.

Residenza in memoria

I virus residenti in memoria, detti anche tsr (Terminate and Stay Resident), caricano in memoria il loro codice ogni volta che il programma infetto, sia esso un file eseguibile o il codice presente nei settori di avvio del sistema, viene eseguito. Una volta attivo, il virus può assumere il controllo delle principali funzioni del computer, rendendo molto difficile la rilevazione da parte dei programmi antivirus. Queste tecniche funzionano solo in ambiente ms-dos, in quanto sfruttano la particolare gestione della memoria caratteristica di questo sistema operativo. In ambiente nativo Windows 95 non sono stati ancora rilevati virus residenti in memoria, ma se si apre una sessione dos, i virus possono ancora usare queste tecniche di infezione.

Mimetizzazione

Alcuni virus residenti in memoria utilizzano tecniche di mimetizzazione (stealth) per nascondere le modifiche apportate al sistema, tenendo sotto controllo le funzioni utilizzate per leggere i file o i blocchi fisici dei dischi. In questo modo i programmi e l'utente vengono ingannati dall'apparente normalità della situazione. Esempi possono essere virus i cui file infetti non appaiono modificati in lunghezza o virus di boot che restituiscono le tabelle originali nascondendo così l'infezione. È una tecnica molto comune: Brain, il primo virus per pc individuato nel 1986, utilizzava già tecniche stealth per celare la sua presenza.

Cifratura del codice

I virus di file sono semplici da individuare, una volta nota la stringa di identificazione. Per renderne più difficile l'identificazione, gli autori di codici virali hanno pensato di nascondere il codice del virus utilizzando tecniche di crittografia. Un virus con codice cifrato è costituito da una routine di decrittazione e da un corpo virale criptato. Se viene lanciato un programma infetto, la routine di decrittazione prende il controllo e decodifica il corpo del virus. A questo punto, la routine trasferisce il controllo al virus in chiaro che può eseguire la sua azione infettante come qualunque altro virus. Ogni volta che infetta un nuovo programma, copia il suo corpo ancora in chiaro e la routine di decrittazione, cifrando il suo codice a operazioni concluse. Per cifrare la copia del suo codice, viene utilizzata una chiave che viene cambiata ogni volta rendendo diverso il virus cifrato. La routine di decrittazione resta però sempre la stessa, rendendo semplice il lavoro dei programmi antivirus che, invece di eseguire la scansione solo alla ricerca delle stringhe di definizione dei virus esaminano il disco alla ricerca delle sequenze delle routine di decrittazione.

Polimorfismo

I virus polimorfici sono un'evoluzione dei virus con codice cifrato. Come questi ultimi sono costituiti da una routine di decrittazione e da un corpo virale criptato che viene decodificato solo quando il virus è in esecuzione ma a queste due componenti aggiungono un algoritmo che modifica in modo casuale la routine di decrittazione dopo ogni infezione.

In un virus polimorfo vengono criptati sia il corpo del virus sia il generatore casuale degli algoritmi di codifica, chiamato mutation engine. Quando viene eseguito un programma infetto con un virus polimorfo, la routine di decrittazione, che è sempre in chiaro, decodifica le parti criptate, lasciando il virus libero di infettare. Durante l'infezione, il virus copia sia il suo codice sia il mutation engine, il quale genera casualmente una nuova routine in grado di cifrare il virus.

Ogni nuova routine non ha nessuna somiglianza con le routine precedenti, e quindi non può più venire identificata utilizzando le normali tecniche di scansione. Con questa tecnica viene codificato il corpo del virus e da infezione ad infezione cambia la routine di decrittazione, confondendo gli scanner.

OCCHIO ALL'AVVIO

La procedura di boot non utilizza la struttura delle directory per avviare i programmi di inizializzazione della macchina, ma utilizza puntatori a locazioni fisse. Il bios, infatti punta sempre e solo al primo settore fisico del disco da cui si sta facendo partire il sistema che, nel caso di un floppy è quello di avvio (boot sector), mentre nel caso di un disco fisso, è quello che contiene la mbr, che a sua volta punta al settore di avvio (primo settore della partizione primaria). Quest'ultimo si collega invariabilmente al file io.sys, che si trova sempre sul cluster numero due.

ATTENZIONE AI FALSI ALLARMI

Il lancio di Microsoft Windows 95 è stato senza dubbio l'evento informatico più seguito dai mass-media. Il secondo è stato un virus. Nel 1992 Michelangelo, una variante del celebre Stoned, che si attiva il giorno del compleanno di Michelangelo Buonarroti, nato il 6 marzo 1475, copiando parte del contenuto della memoria su settori casuali del disco fisso diede origine a un caso di dimensioni mondiali. Secondo alcuni sedicenti esperti, tra cui importanti operatori commerciali del settore, il virus avrebbe dovuto colpire cinque milioni di computer in tutto il mondo. I giornali scrissero storie terribili, i più fantasiosi arrivarono a profetizzare la fine della civiltà industriale. Sono passati sei anni e stiamo tutti bene. La storia si è ripetuta due anni fa con Hare, un virus polimorfo multipartito, che si attiva il 22 dei mesi di agosto e settembre, annunciato come l'ennesimo flagello e rivelatosi, poi, un fiasco. Questi casi hanno creato una percezione falsa e sensazionalistica del problema che invece richiede un approccio più razionale.

LE MACRO

Una macro è una collezione di istruzioni utilizzata per automatizzare operazioni in genere ripetitive e noiose. Nel mondo dos un esempio di macro è dato dai file batch (estensione .bat), come l'autoexec.bat che automatizza il caricamento di programmi all'avvio del sistema. Molte applicazioni, come Word o Excel, utilizzano comandi macro per automatizzare particolari compiti che richiedono l'esecuzione di sequenze di comandi elementari. Si immagini, per esempio, di dover inserire il proprio nome, indirizzo e numero di telefono a decine di documenti ogni giorno. Utilizzando il linguaggio macro dell'applicazione è possibile associare questo insieme di operazioni a una combinazione di tasti come ctrl+maiusc+d. La potenza di un ambiente come Wordbasic di Word fornisce all'utente la possibilità di automatizzare molte azioni, comprese quelle relative alla gestione dei file, dall'interno del programma stesso.

LA BIOLOGIA INFORMATICA

Il nome virus, assegnato a questo tipo di programmi da Len Adleman, un ricercatore dell'Università Lehigh in Pennsylvania, è stato attribuito in quanto il loro comportamento è simile a quello di un virus biologico che si diffonde per mezzo delle cellule sane di un organismo. Esistono diversi tipi di virus, ognuno dei quali presenta caratteristiche diverse e utilizza tecniche differenti per diffondersi e per sfuggire all'azione dei software di rilevazione antivirus.

NON TUTTI SONO CATTIVI

I virus informatici colpiscono il sistema in modi diversi, causando danni di diversa gravità. Non tutti i virus sono distruttivi però. Molti non causano danni al sistema, sia perché l'intenzione non era danneggiare, sia perché sono presenti bachi che ne pregiudicano il funzionamento.

VIRUS E FILM

Il film Independence Day non è l'unico esempio in cui vengono impiegati virus informatici per piegare i nemici. Anche la letteratura di fantascienza li cita spesso. Nel romanzo Snow Crash, Neal Stephenson racconta le avventure di un gruppo di ragazzi che combattono contro la dittatura che detiene il potere di The Metaverse, un mondo virtuale in cui i protagonisti del racconto si muovono sotto forma di avatar, cioè rappresentazioni digitali di persone reali. Anche qui, anche se questa volta dai cattivi, viene usato uno speciale virus, Snow Crash.



Altri Articoli Correlati
  • Danni causati dai virus di A. C.
  • Altri tipi di virus
  • Virus in cifre di A. C.


  • CategoriaSottocategoria
    Software di base e per sviluppoVirus e Antivirus

    top


    © Mondadori Informatica S.p.A. -1998
    Tutti i diritti di proprietα letteraria e artistica riservati